home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 3
/
Amiga Tools 3.iso
/
grafik
/
raytracing
/
rayshade-4.0.6.3
/
inetray
/
generr.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-08-17
|
2KB
|
88 lines
/*======================================================================
G E N E R R . C
doc: Tue Jul 20 10:48:03 1993
dlm: Tue Aug 17 09:55:01 1993
(c) 1993 ant@bernina.ethz.ch
uE-Info: 18 6 T 0 0 72 2 2 8 ofnI
======================================================================*/
/*#define FOREGROUND /* Don't fork */
#include <stdio.h>
#include <syslog.h>
#include <fcntl.h>
#include <signal.h>
#include <sys/ioctl.h>
#ifndef TIOCNOTTY
#include <termios.h>
#endif
#include "version.h"
#include "patchlevel.h"
#include "config.h"
#include "common.h"
#include "stderr.h"
main(ac,av)
int ac; char *av[];
{
int i;
fprintf(stderr,"%s [%s%d]\n",av[0],VERSION,PATCHLEVEL);
#ifdef NOSYSLOG_QUIRK
fprintf(stderr,"\tMessages in file %s%s\n",_P_tmpdir,NOSYSLOG);
#else
fprintf(stderr,"\tMessages in syslog(3)\n");
#endif
#ifdef NOASYNCIO_QUIRK
fprintf(stderr,"\tStderr redirection files in directory %s\n",
_P_tmpdir);
#else
fprintf(stderr,"\tStderr ditto\n");
#endif
fprintf(stderr,"\tStdout on Console\n");
OPENLOG(av[0]);
#ifndef FOREGROUND
if (fork() == 0) {
#endif
for (i = 0 ; i < 20; i++)
(void) close(i);
#ifdef O_NOCTTY
i = open("/dev/console",O_WRONLY|O_NOCTTY);
#else
i = open("/dev/console",O_WRONLY);
#endif
(void) dup2(i,1);
(void) dup2(i,2);
printf("Stdout of %s [%s%d]\n",av[0],VERSION,PATCHLEVEL);
#ifndef KEEPTTY_QUIRK
i = open("/dev/tty",O_WRONLY);
if (i >= 0) {
(void) ioctl(i, TIOCNOTTY, (char *)NULL);
(void) close(i);
}
#endif
if (openStderr(av[0]) < 0) exit(1);
#ifndef FOREGROUND
if (fork() == 0) {
signal(SIGIO,SIG_IGN);
#endif
SYSLOG(LOG_NOTICE,"syslog of %s [%s%d]",av[0],VERSION,PATCHLEVEL);
fprintf(stderr,"Stderr of %s [%s%d]\n",av[0],VERSION,PATCHLEVEL);
#ifndef FOREGROUND
exit(0);
}
wait(NULL);
#endif
closeStderr();
CLOSELOG();
#ifndef FOREGROUND
exit(0);
}
wait(NULL);
#endif
exit(0);
}